Computing busses are typically localized within a computer and communicatively couple computing elements. The computing busses represent a point-to-point communication path allowing the computing elements to interact with each other via the exchange of data.
Current trends in computing markets are toward distributed computing where computers are linked to each through standard network protocols (e.g., TCP/IP) abstracted from the physical media interconnecting networking nodes. Computers participating within a distributed computing network offer their services (e.g., web services, procedure calls, functions, or other software systems) to each other. However, such distributed computing networks do not offer computing elements access to each other. Additionally, computing networks introduce high latency when data is exchanged rendering them impractical as a computer bus.
Other computing networks do exist that are slightly more suited as a computing bus. InfiniBand® (http://www.infinibandta.org/home) for example, provides high speed fabric connectivity among High Performance Computing (HPC) systems while having moderately low latency. Unfortunately, InfiniBand and other HPC networks are limited to communicating over a distance less than several hundred meters rendering them unsuitable for computing environments spanning across geographically significant distances. Additionally, such networks at best can only connect computer systems or some peripherals, but not all computing elements.
A desirable computing bus would provide bus communications among computing elements over geographically significant distances as well as participate within the computing process.
Computing fabrics can provide a network for distributed computers. Example computing fabrics include Beowulf clusters, PVM developed by the University of Tennessee, Oak Ridge National Laboratory and Emory University, or even U.S. Pat. No. 6,779,016 to Aziz et al. titled “Extensible Computing System” that describes a computing fabric used to create a virtual server farm out of a collection of processors and storage elements. These and other computing fabrics simply provide for distributed computing without offering bus-like communications having high-throughput and low latency among computing elements.
U.S. Pat. No. 5,361,334 to Cawley titled “Data Processing and Communication” describes a data processing system having plurality of processing units and memory units that communicate over a network of routers. Although Cawley provides for connecting computing elements across a network, Cawley does not address the desire for intermediary network nodes participating in the computing process.
U.S. Pat. No. 6,105,122 to Muller et al. titled “I/O Protocol for Highly Configurable Multi-Node Processing System” discusses transferring data from compute nodes to I/O nodes through a fabric of switch nodes. While useful for communicating among edge nodes, the configuration described by Muller still does not address the desire for having network nodes take part in computation.
U.S. patent publication 2003/0005039 to Craddock et al. titled “End Node Partition Using Local Identifiers” discloses a distributed computing system having components including edge nodes, switches, and routers that form a fabric that interconnects the edge nodes. The disclosed fabric employs InifinBand to form the fabric. However, Craddock also does not address the need for allowing networking nodes to participate in computation.
What has yet to be appreciated is that a distributed networking fabric capable of reconfiguration can provide a viable long haul computing bus accessible by computing elements while maintaining low latency and providing high throughput. Furthermore, a distributed computing bus based on such a network fabric can also take an active role in the computation process. As data is transported across the fabric, the fabric's nodes can operate on payload data according to a desired computational function. Such a fabric can be considered a computational transport fabric.
Thus, there is still a need for a distributed computing bus for connecting computing elements over geographically significant distances.